package com.shujia.wyh.day11.ketang;

/*
        使用继承的注意事项：
            1、子类只能继承父类中的非私有的成员（成员变量和成员方法）
            2、子类不能继承父类中的构造方法，可以通过super关键去访问父类中的构造方法。（下午讲解）
            3、不要为了部分的功能而去继承

            class A{
                public void show1(){}
                public void show2(){}
            }

            class B{
                public void fun1(){}
                public void fun2(){}
                public void show1(){}
            }
            通过观察上面的两个类来说，只有一个show1()方法在A和B中都出现了。
            从技术层面上来说，可以用继承改进，但是从开发工作量和维护角度来说，不建议。
            如果直接用B继承A的话，虽然我们把show1()继承过来了，但是呢，show2()也继承过来，这样在大多开发情况下是不合理的。

            那么问题来了？
                什么时候使用继承呢？
                在英语中有一个语法”is a“,只要，满足这个语法就可以使用继承

            Person
                Student
                Teacher
                Doctor

            Animal
                Cat
                Dog
                Pig

 */

class Father2{
    private int num = 30;

    Father2(){

    }

    private void show(){
        System.out.println("这是父类中私有的成员方法");
    }
}

class Son2 extends Father2{
    public void fun(){
        //num 在 com.shujia.wyh.day11.ketang.Father2 中是 private 访问控制
//        System.out.println(num);
//        show();
    }

//    Father2(){
//
//    }
}

public class ExtendsDemo4 {
    public static void main(String[] args) {
        Son2 son2 = new Son2();
        son2.fun();
    }
}
